/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package application;

import controleur.ConnexionBD;
import java.sql.PreparedStatement;
import controleur.ConstantesWeb;
import java.sql.ResultSet;

/**
 *
 * @author Usager
 */
public class MembreDAO {
    private static PreparedStatement pstmt;
    private static ResultSet results;

//    public static ResultSet getMembreIdentifications(final String user, final String pwd) {
//        final String query = "select nom_utilisateur nomUtilisateur, AES_DECRYPT(mot_de_passe,'" + ConstantesWeb.CLE_CRYPTAGE
//                + "') motPasse from membre where nom_utilisateur=? and mot_de_passe=AES_ENCRYPT(?,'" + ConstantesWeb.CLE_CRYPTAGE + "')";
//
//        try {          
//            pstmt = ConnexionBD.creerConnexion().prepareStatement(query);
//            pstmt.setString(1, user);
//            pstmt.setString(2, pwd);
//            results = pstmt.executeQuery();
//            
//        } catch (Exception e) {
//            return null;
//        }
//        return results;
//    }

    public static ResultSet getMembre(final String nomUtilisateur, final String motPasse) {
        final String query = "select *, AES_DECRYPT(mot_de_passe,'" + ConstantesWeb.CLE_CRYPTAGE
                + "') motPasse from membre where nom_utilisateur=? and mot_de_passe = AES_ENCRYPT("
                + "?,'" + ConstantesWeb.CLE_CRYPTAGE + "')";

        try {          
            pstmt = ConnexionBD.creerConnexion().prepareStatement(query);
            pstmt.setString(1, nomUtilisateur);
            pstmt.setString(2, motPasse);
            results = pstmt.executeQuery();
        } catch (Exception e) {
            return null;
        }
        return results;
    }

    public static ResultSet getMembre(final String idMembre) {
        final String query = "select *, AES_DECRYPT(mot_de_passe,'" + ConstantesWeb.CLE_CRYPTAGE
                + "') motPasse from membre where id_membre=?";

        try {          
            pstmt = ConnexionBD.creerConnexion().prepareStatement(query);
            pstmt.setInt(1, Integer.parseInt(idMembre));
            results = pstmt.executeQuery();
            
        } catch (Exception e) {
            return null;
        }
        return results;
    }
    
    public static int updateMembre(final MembreBean m) {
        final String query = "update membre "
                + "set courriel=?, "
                + "prenom=?, "
                + "nom_de_famille=?, "
                + "adresse=?, "
                + "id_ville=?, "
                + "telephone=?, " 
                + "mot_de_passe=AES_ENCRYPT(?,'" + ConstantesWeb.CLE_CRYPTAGE + "') "
                + "where id_membre=?";

        int rowResults;

        try {
            pstmt = ConnexionBD.creerConnexion().prepareStatement(query);
            pstmt.setString(1, m.getCourriel());
            pstmt.setString(2, m.getPrenom());
            pstmt.setString(3, m.getNomFamille());
            pstmt.setString(4, m.getAdresse());
            pstmt.setInt(5, Integer.parseInt(m.getIdVille()));
            pstmt.setString(6, m.getTelephone());
            pstmt.setString(7, m.getMotPasse());
            pstmt.setInt(8, Integer.parseInt(m.getIdMembre()));
            rowResults = pstmt.executeUpdate();
        } catch (Exception e) {
            rowResults = 0;
        }
        return rowResults;
    }
    
    public static ResultSet getMembres() {
        final String query = "select *, AES_DECRYPT(mot_de_passe,'" + ConstantesWeb.CLE_CRYPTAGE
                + "') motPasse from membre order by nom_utilisateur";

        try {          
            pstmt = ConnexionBD.creerConnexion().prepareStatement(query);
            results = pstmt.executeQuery();            
        } catch (Exception e) {
            return null;
        }
        return results;
    }
}
